package leetcode100;

import java.util.Scanner;

/**
 * @author shkstart
 * 完全数（Perfect number），又称完美数或完备数，是一些特殊的自然数。
 *
 * 它所有的真因子（即除了自身以外的约数）的和（即因子函数），恰好等于它本身。
 *
 * 例如：28，它有约数1、2、4、7、14、28，除去它本身28外，其余5个数相加，1+2+4+7+14=28。
 *
 * 输入n，请输出n以内(含n)完全数的个数。
 * @create 2022-12-14-20:51
 */
public class Meme16_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n = in.nextInt();int count =0;
        boolean result;
        //判断完美树需要从2开始，所以i最小取2，可以取得本身
        for(int i =2;i<=n;i++){
            result =isWanmei(i);
            if(result){
                count++;
            }
        }
        System.out.println(count);

    }
    public static boolean isWanmei(int n){
        int sum =0;
        int a=0;
        int b=0;
//      计算约数的同时统计完美树，放弃 1*n ，所以i从2开始
        for(int i=2;i*i<=n;i++){
            if(n%i==0){
                a=i;
                b=n/i;
                sum+=(a+b);
            }
        }
        if((sum+1)==n){
            return true;
        }else{
            return false;
        }

    }
}
